package drds.binlog.sink.event_down_stream_handler;

import drds.binlog.common.Authors;
import drds.binlog.common.LifeCycle;
import drds.common.Author;

/**
 * 处理下sink时的数据流
 */
@Author(name = Authors.LI_YANG)
public interface EventDownStreamHandler<EventList> extends LifeCycle
{

    /**
     * 提交到store之前做一下处理，允许替换Event
     */
    public EventList before(EventList eventList);

    /**
     * store处于full后，retry时处理做一下处理
     */
    public EventList retry(EventList eventList);

    /**
     * 提交store成功后做一下处理
     */
    public EventList after(EventList eventList);
}
